Known time domain to frequency domain or frequency domain to time domain transformations used in codecs include the Discrete Cosine Transform (DCT) or the Modified Discrete Cosine Transform (MDCT). Both types of transformation have the disadvantage that they are costly in terms of required computational power since the computation involves multiplications with a much higher precision than that of both the input and the output values. E.g. in audio codecs, based on 16 bit integer input samples and output values, in many cases the internal computations are carried out with at least 32 bit fixed point or floating point precision. The input values are multiplied with cosine values, which often are memorised in look-up tables to reduce the processing power load. But such tables consume valuable memory capacity which is precious in particular in embedded systems like audio players or mobiles phones.
The Hadamard transformation does not use any such multiplications but uses matrices consisting only of ‘+1’ and ‘−1’ values. But using a Hadamard transform leads to reduced coding quality or increased bitrate.
The major advantage of the MDCT over the DCT is its lapped nature, i.e. each input sample is transformed twice and each output sample is the sum of two inverse transforms, which has the effect that quantisation effects are averaged and noise introduced by a is completely cancelled in the optimum case. By subsampling following the overlapping the MDCT transformed signal has as many samples as the input signal. This feature is not feasible when using a Hadamard transform. If an overlap of 50% is chosen, there are also 50% more transformed samples, which fact contradicts the compression goal and has strong drawbacks on transmission.